'\" et
'\"! eqn|tbl | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 24 September 1999
.ds Re Release 1.2.1
.ds Dp Jan 14 18:30
.ds Dm 01 enable.gl
.ds Xs 48946 14 enable.gl
.TH GLENABLE 3G
.SH NAME
.B "glEnable, glDisable
\- enable or disable server-side GL capabilities

.SH C SPECIFICATION
void \f3glEnable\fP(
GLenum \fIcap\fP )
.nf
.fi

.SH PARAMETERS
.TP \w'\f2cap\fP\ \ 'u 
\f2cap\fP
Specifies a symbolic constant indicating a GL capability.
.SH C SPECIFICATION
void \f3glDisable\fP(
GLenum \fIcap\fP )
.nf
.fi

.SH PARAMETERS
.TP
\f2cap\fP
Specifies a symbolic constant indicating a GL capability.
.SH DESCRIPTION
\%\f3glEnable\fP and \%\f3glDisable\fP enable and disable various capabilities.
Use \%\f3glIsEnabled\fP or \%\f3glGet\fP to determine the current setting
of any capability. The initial value for each capability with the
exception of \%\f3GL_DITHER\fP is \%\f3GL_FALSE\fP. The initial value for
\%\f3GL_DITHER\fP is \%\f3GL_TRUE\fP. 
.P
Both \%\f3glEnable\fP and \%\f3glDisable\fP take a single argument, \f2cap\fP,
which can assume one of the following values:
.TP 25
\%\f3GL_ALPHA_TEST\fP
If enabled,
do alpha testing. See
\%\f3glAlphaFunc\fP.
.TP
\%\f3GL_AUTO_NORMAL\fP
If enabled,
generate normal vectors when either
\%\f3GL_MAP2_VERTEX_3\fP or
\%\f3GL_MAP2_VERTEX_4\fP is used to generate vertices. 
See \%\f3glMap2\fP.
.TP
\%\f3GL_BLEND\fP
If enabled,
blend the incoming RGBA color values with the values in the color
buffers. See \%\f3glBlendFunc\fP.
.TP
\%\f3GL_CLIP_PLANE\fP\f2i\fP
If enabled,
clip geometry against user-defined clipping plane \f2i\fP.
See \%\f3glClipPlane\fP.
.TP
\%\f3GL_COLOR_LOGIC_OP\fP
If enabled,
apply the currently selected logical operation to the incoming RGBA
color and color buffer values. See \%\f3glLogicOp\fP.
.TP
\%\f3GL_COLOR_MATERIAL\fP
If enabled,
have one or more material parameters track the current color.
See \%\f3glColorMaterial\fP.
.TP
\%\f3GL_COLOR_TABLE\fP
If enabled,
preform a color table lookup on the incoming RGBA color values.
See \%\f3glColorTable\fP.
.TP
\%\f3GL_CONVOLUTION_1D\fP
If enabled,
perform a 1D convolution operation on incoming RGBA color values.
See \%\f3glConvolutionFilter1D\fP.
.TP
\%\f3GL_CONVOLUTION_2D\fP
If enabled,
perform a 2D convolution operation on incoming RGBA color values.
See \%\f3glConvolutionFilter2D\fP.
.TP
\%\f3GL_CULL_FACE\fP
If enabled,
cull polygons based on their winding in window coordinates. 
See \%\f3glCullFace\fP.
.TP
\%\f3GL_DEPTH_TEST\fP
If enabled,
do depth comparisons and update the depth buffer. Note that even if
the depth buffer exists and the depth mask is non-zero, the 
depth buffer is not updated if the depth test is disabled. See
\%\f3glDepthFunc\fP and 
.br
\%\f3glDepthRange\fP. 
.TP
\%\f3GL_DITHER\fP	
If enabled,
dither color components or indices before they are written to the
color buffer.
.TP
\%\f3GL_FOG\fP
If enabled,
blend a fog color into the posttexturing color.
See \%\f3glFog\fP.
.TP
\%\f3GL_HISTOGRAM\fP
If enabled,
histogram incoming RGBA color values.
See \%\f3glHistogram\fP.
.TP
\%\f3GL_INDEX_LOGIC_OP\fP
If enabled,
apply the currently selected logical operation to the incoming index and color
buffer indices. See 
.br
\%\f3glLogicOp\fP.
.TP
\%\f3GL_LIGHT\fP\f2i\fP
If enabled,
include light \f2i\fP in the evaluation of the lighting
equation. See \%\f3glLightModel\fP and \%\f3glLight\fP.
.TP
\%\f3GL_LIGHTING\fP
If enabled,
use the current lighting parameters to compute the vertex color or index.
Otherwise, simply associate the current color or index with each
vertex. See 
.br
\%\f3glMaterial\fP, \%\f3glLightModel\fP, and \%\f3glLight\fP.
.TP
\%\f3GL_LINE_SMOOTH\fP
If enabled,
draw lines with correct filtering.
Otherwise,
draw aliased lines.
See \%\f3glLineWidth\fP.
.TP
\%\f3GL_LINE_STIPPLE\fP
If enabled,
use the current line stipple pattern when drawing lines. See
\%\f3glLineStipple\fP. 
.TP
\%\f3GL_MAP1_COLOR_4\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate RGBA values.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_INDEX\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate color indices.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_NORMAL\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate normals.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_TEXTURE_COORD_1\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
\f2s\fP
texture coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_TEXTURE_COORD_2\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
\f2s\fP and
\f2t\fP texture coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_TEXTURE_COORD_3\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
\f2s\fP,
\f2t\fP, and
\f2r\fP texture coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_TEXTURE_COORD_4\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
\f2s\fP,
\f2t\fP,
\f2r\fP, and
\f2q\fP texture coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_VERTEX_3\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
\f2x\fP, \f2y\fP, and \f2z\fP vertex coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP1_VERTEX_4\fP
If enabled,
calls to
\%\f3glEvalCoord1\fP,
\%\f3glEvalMesh1\fP, and
\%\f3glEvalPoint1\fP generate
homogeneous
\f2x\fP,
\f2y\fP,
\f2z\fP, and
\f2w\fP vertex coordinates.
See \%\f3glMap1\fP.
.TP
\%\f3GL_MAP2_COLOR_4\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate RGBA values.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_INDEX\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate color indices.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_NORMAL\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate normals.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_TEXTURE_COORD_1\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
\f2s\fP
texture coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_TEXTURE_COORD_2\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
\f2s\fP and
\f2t\fP texture coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_TEXTURE_COORD_3\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
\f2s\fP,
\f2t\fP, and
\f2r\fP texture coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_TEXTURE_COORD_4\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
\f2s\fP,
\f2t\fP,
\f2r\fP, and
\f2q\fP texture coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_VERTEX_3\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
\f2x\fP, \f2y\fP, and \f2z\fP vertex coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MAP2_VERTEX_4\fP
If enabled,
calls to
\%\f3glEvalCoord2\fP,
\%\f3glEvalMesh2\fP, and
\%\f3glEvalPoint2\fP generate
homogeneous
\f2x\fP,
\f2y\fP,
\f2z\fP, and
\f2w\fP vertex coordinates.
See \%\f3glMap2\fP.
.TP
\%\f3GL_MINMAX\fP
If enabled,
compute the minimum and maximum values of incoming RGBA color values.
See \%\f3glMinmax\fP.
.TP
\%\f3GL_NORMALIZE\fP
If enabled,
normal vectors specified with \%\f3glNormal\fP are scaled to unit length
after transformation. See \%\f3glNormal\fP.
.TP
\%\f3GL_POINT_SMOOTH\fP
If enabled,
draw points with proper filtering.
Otherwise,
draw aliased points.
See \%\f3glPointSize\fP.
.TP
\%\f3GL_POLYGON_OFFSET_FILL\fP
If enabled, and if the polygon is rendered in
\%\f3GL_FILL\fP mode, an offset is added to depth values of a polygon's
fragments before the depth comparison is performed. 
See \%\f3glPolygonOffset\fP. 
.TP
\%\f3GL_POLYGON_OFFSET_LINE\fP
If enabled, and if the polygon is rendered in
\%\f3GL_LINE\fP mode, an offset is added to depth values of a polygon's
fragments before the depth comparison is performed. See \%\f3glPolygonOffset\fP. 
.TP
\%\f3GL_POLYGON_OFFSET_POINT\fP
If enabled, an offset is added to depth values of a polygon's fragments
before the depth comparison is performed, if the polygon is rendered in 
\%\f3GL_POINT\fP mode. See \%\f3glPolygonOffset\fP. 
.TP
\%\f3GL_POLYGON_SMOOTH\fP
If enabled, draw polygons with proper filtering.
Otherwise, draw aliased polygons. For correct anti-aliased polygons,
an alpha buffer is needed and the polygons must be sorted front to
back. 
.TP
\%\f3GL_POLYGON_STIPPLE\fP
If enabled,
use the current polygon stipple pattern when rendering
polygons. See \%\f3glPolygonStipple\fP.
.TP
\%\f3GL_POST_COLOR_MATRIX_COLOR_TABLE\fP
If enabled,
preform a color table lookup on RGBA color values after color matrix 
transformation.
See \%\f3glColorTable\fP.
.TP
\%\f3GL_POST_CONVOLUTION_COLOR_TABLE\fP
If enabled,
preform a color table lookup on RGBA color values after convolution.
See \%\f3glColorTable\fP.
.TP
\%\f3GL_RESCALE_NORMAL\fP
If enabled, normal vectors specified with \%\f3glNormal\fP are scaled to
unit length after transformation. See \%\f3glNormal\fP.
.TP
\%\f3GL_SEPARABLE_2D\fP
If enabled, perform a two-dimensional convolution operation using a separable
convolution filter on incoming RGBA color values.
See \%\f3glSeparableFilter2D\fP.
.TP
\%\f3GL_SCISSOR_TEST\fP
If enabled,
discard fragments that are outside the scissor rectangle. 
See \%\f3glScissor\fP.
.TP
\%\f3GL_STENCIL_TEST\fP
If enabled,
do stencil testing and update the stencil buffer. 
See \%\f3glStencilFunc\fP and \%\f3glStencilOp\fP.
.TP
\%\f3GL_TEXTURE_1D\fP
If enabled, one-dimensional texturing is performed
(unless two- or three-dimensional texturing is also enabled).
See \%\f3glTexImage1D\fP.
.TP
\%\f3GL_TEXTURE_2D\fP
If enabled, two-dimensional texturing is performed
(unless three-dimensional texturing is also enabled). See \%\f3glTexImage2D\fP.
.TP
\%\f3GL_TEXTURE_3D\fP
If enabled, three-dimensional texturing is performed. See \%\f3glTexImage3D\fP.
.TP
\%\f3GL_TEXTURE_GEN_Q\fP
If enabled,
the \f2q\fP texture coordinate is computed using
the texture generation function defined with \%\f3glTexGen\fP.
Otherwise, the current \f2q\fP texture coordinate is used.
See \%\f3glTexGen\fP.
.TP
\%\f3GL_TEXTURE_GEN_R\fP
If enabled,
the \f2r\fP texture coordinate is computed using
the texture generation function defined with \%\f3glTexGen\fP.
Otherwise, the current \f2r\fP texture coordinate is used.
See \%\f3glTexGen\fP.
.TP
\%\f3GL_TEXTURE_GEN_S\fP
If enabled,
the \f2s\fP texture coordinate is computed using
the texture generation function defined with \%\f3glTexGen\fP.
Otherwise, the current \f2s\fP texture coordinate is used. 
See \%\f3glTexGen\fP.
.TP
\%\f3GL_TEXTURE_GEN_T\fP
If enabled,
the \f2t\fP texture coordinate is computed using
the texture generation function defined with \%\f3glTexGen\fP.
Otherwise, the current \f2t\fP texture coordinate is used.
See \%\f3glTexGen\fP.
.SH NOTES
\%\f3GL_POLYGON_OFFSET_FILL\fP, \%\f3GL_POLYGON_OFFSET_LINE\fP,
\%\f3GL_POLYGON_OFFSET_POINT\fP,
\%\f3GL_COLOR_LOGIC_OP\fP, and \%\f3GL_INDEX_LOGIC_OP\fP are available
only if the GL version is 1.1 or greater. 
.P
\%\f3GL_RESCALE_NORMAL\fP, and \%\f3GL_TEXTURE_3D\fP are available only if the
GL version is 1.2 or greater.
.P
\%\f3GL_COLOR_TABLE\fP, \%\f3GL_CONVOLUTION_1D\fP, \%\f3GL_CONVOLUTION_2D\fP,
\%\f3GL_HISTOGRAM\fP, \%\f3GL_MINMAX\fP,
\%\f3GL_POST_COLOR_MATRIX_COLOR_TABLE\fP,
\%\f3GL_POST_CONVOLUTION_COLOR_TABLE\fP, and
\%\f3GL_SEPARABLE_2D\fP are available only if \%\f3GL_ARB_imaging\fP is returned
from \%\f3glGet\fP with an argument of \%\f3GL_EXTENSIONS\fP.
.P
If \%\f3GL_ARB_multitexture\fP is supported, \%\f3GL_TEXTURE_1D\fP,
\%\f3GL_TEXTURE_2D\fP, \%\f3GL_TEXTURE_3D\fP, \%\f3GL_TEXTURE_GEN_S\fP,
\%\f3GL_TEXTURE_GEN_T\fP, \%\f3GL_TEXTURE_GEN_R\fP, and \%\f3GL_TEXTURE_GEN_Q\fP
enable or disable the respective state for the active texture unit
specified with \%\f3glActiveTextureARB\fP.
.SH ERRORS
\%\f3GL_INVALID_ENUM\fP is generated if \f2cap\fP is not one of the values
listed previously.
.P
\%\f3GL_INVALID_OPERATION\fP is generated if \%\f3glEnable\fP or \%\f3glDisable\fP
is executed between the execution of \%\f3glBegin\fP
and the corresponding execution of \%\f3glEnd\fP.
.SH SEE ALSO
\%\f3glActiveTextureARB(3G)\fP,
\%\f3glAlphaFunc(3G)\fP,
\%\f3glBlendFunc(3G)\fP,
\%\f3glClipPlane(3G)\fP,
\%\f3glColorMaterial(3G)\fP,
\%\f3glCullFace(3G)\fP,
\%\f3glDepthFunc(3G)\fP,
\%\f3glDepthRange(3G)\fP,
\%\f3glEnableClientState(3G)\fP,
\%\f3glFog(3G)\fP,
\%\f3glGet(3G)\fP,
\%\f3glIsEnabled(3G)\fP,
\%\f3glLight(3G)\fP,
\%\f3glLightModel(3G)\fP,
\%\f3glLineWidth(3G)\fP,
\%\f3glLineStipple(3G)\fP,
\%\f3glLogicOp(3G)\fP,
\%\f3glMap1(3G)\fP,
\%\f3glMap2(3G)\fP,
\%\f3glMaterial(3G)\fP,
\%\f3glNormal(3G)\fP,
\%\f3glPointSize(3G)\fP,
\%\f3glPolygonMode(3G)\fP,
\%\f3glPolygonOffset(3G)\fP,
\%\f3glPolygonStipple(3G)\fP,
\%\f3glScissor(3G)\fP,
\%\f3glStencilFunc(3G)\fP,
\%\f3glStencilOp(3G)\fP,
\%\f3glTexGen(3G)\fP,
\%\f3glTexImage1D(3G)\fP,
\%\f3glTexImage2D(3G)\fP,
\%\f3glTexImage3D(3G)\fP

